function getSelectors(path) {
  // 反转输入的元素和路径数组，并过滤掉document和window对象
  return path.reverse().filter(element => {
    return element !== document && element !== window
  }).map(element => {
    let selector = ""; // 初始化选择器字符串
    if (element.id) { // 如果元素有id属性，则使用id创建更具体的选择器
      return `${element.nodeName.toLowerCase()}#${element.id}`
    } else if (element.className && typeof element.className === "string") {
      // 如果元素没有id属性，但是有className属性，并且是个字符串，则尝试使用class来创建选择器
      return `${element.nodeName.toLowerCase()}.${element.className}`
    } else {
      // 如果既没有id也没有class则进返回元素的标签名作为选择器
      return selector = `${element.nodeName.toLowerCase()}`
    }
  }).join(" ") // 将所有选择器用空格拼接
}
export default function (pathOrTarget) {
  if (Array.isArray(pathOrTarget)) { // 可能是一个数组，也可能是一个对象 
    return getSelectors(pathOrTarget)
  } else {
    let path = []
    while (pathOrTarget) {
      path.push(pathOrTarget);
      pathOrTarget = pathOrTarget.parentNode;
    }
    return getSelectors(path)
  }
}